Configuration changes in the software industry are common. Many software programs are upgraded regularly and incrementally, offering new features and/or fixing imperfections (or “bugs”) in prior versions. In some cases, the update might require the installation of an entirely new version of the product, while in other cases, a patch can be applied to an existing installation of the product to provide the new or improved functionality. Software vendors have an interest in encouraging users to update that vendor's software, both to generate revenue through additional sales and to reduce customer dissatisfaction with, and service calls resulting from, problems related to down-level (i.e., older versions of) software. Additionally, as the hardware on which that software runs becomes outdated and/or unreliable, the hardware may need to be upgraded or replaced. In some cases, newer (or different) versions of software may be available to take advantage of the features of newer hardware. In addition, many vendors now provide “software as a service,” running applications for a customer in the vendor's environment; an example is Oracle On Demand™, available commercially from Oracle Corporation. Such software-as-a-service vendors often desire to keep this environment updated with current (and properly-patched) versions of the installed software, for marketing purposes, to reduce support costs, and for myriad other reasons.
Software users, and especially business users, however, are often reluctant to adopt software patches or other upgrades. They are often equally, if not more, reluctant to introduce hardware configuration changes. From the user's perspective, if the existing installation works (even if not optimally), the user often sees no need to risk breaking the system with an untried upgrade of hardware or software.
This concern is particularly acute in business settings that employ complex enterprise applications. As used herein, the term “enterprise application” is used to refer to any software application, or suite of applications, that perform business functions, such as accounting, payroll, resource planning, customer relations management, and/or the like. Such applications, include, merely by way of example, the Oracle E-Business Suite™, Oracle Fusion™, PeopleSoft Enterprise™, JD Edwards Enterpriseone™, JD Edwards World™, and Siebel CRM™, all of which are commercially available from Oracle Corporation. These enterprise applications typically are database-driven, meaning that they employ a database (often managed by a relational database management system or “RDBMS,” such as Oracle Database 11g™, commercially available from Oracle Corporation). Businesses usually view these applications as mission-critical and therefore are reluctant to make any changes, either to the applications themselves or to the environment (which can include, without limitation, the application itself, the database and/or RDBMS, the operating system, and/or the hardware) in which the application runs, for fear that the configuration change will result in costly system downtime, or even in reduced system performance, which can become equally costly over time. Accordingly, these business users often decline to install patches or upgrades (to either the application or any other component of the application's environment), even when the patches or upgrades offer to dramatically improve system performance. For similar reasons, such business users often refuse to upgrade to current versions of software, resulting in lost sales for the software vendor and a missed opportunity for the user to enjoy increased functionality. Likewise, a customer of a software-as-a-service vendor might refuse to allow the vendor to patch or upgrade the vendor's application environment, which puts the vendor in the difficult position of having multiple customers with conflicting demands (some customers demanding a patch and others refusing it) and/or having to support multiple, disparate environments.
It would be useful if there were a way to ensure users that a prospective patch or upgrade would not result in performance issues.